package com.sys.common.util;

import com.sys.common.code.ResultEnum;

public final class ResultBuilder {
 
    public ResultBuilder() {
    }
 
    /**
     * 返回成功消息
     *
     * @return 成功消息
     */
    public static ResponseDateUtil success() {
        return ResponseDateUtil.builder()
                .code(ResultEnum.SUCCESS.getCode())
                .msg(ResultEnum.SUCCESS.getMessage())
                .build();
 
 
    }
 
    /**
     * 返回成功消息
     *
     * @param message 返回内容
     * @return 成功消息
     */
    public static  <T> ResponseDateUtil<T> success(String message) {
        return ResponseDateUtil.<T>builder()
                .code(ResultEnum.SUCCESS.getCode())
                .msg(message)
                .build();
    }
 
    /**
     * 返回成功消息
     *
     * @param data 数据对象
     * @return 成功消息
     */
    public static <T> ResponseDateUtil<T> success(T data) {
        return ResponseDateUtil.<T>builder()
                .code(ResultEnum.SUCCESS.getCode())
                .msg(ResultEnum.SUCCESS.getMessage())
                .data(data)
                .build();
    }
 
    /**
     * 返回成功消息
     *
     * @param resultEnum 状态码,返回内容
     * @return 成功消息
     */
    public static <T> ResponseDateUtil<T> success(ResultEnum resultEnum) {
        return ResponseDateUtil.<T>builder()
                .code(resultEnum.getCode())
                .msg(resultEnum.getMessage())
                .build();
    }
 
    /**
     * 返回成功消息
     *
     * @param resultEnum 状态码,返回内容
     * @param data       数据对象
     * @return 成功消息
     */
    public static <T> ResponseDateUtil<T> success(ResultEnum resultEnum, T data) {
        return ResponseDateUtil.<T>builder()
                .code(resultEnum.getCode())
                .msg(resultEnum.getMessage())
                .data(data)
                .build();
    }
 
 
    /**
     * 返回错误消息
     *
     * @return 错误消息
     */
    public static ResponseDateUtil errorInfo() {
        return ResponseDateUtil.builder()
                .code(ResultEnum.FAIL.getCode())
                .msg(ResultEnum.FAIL.getMessage())
                .build();
    }


    /**
     * 返回错误消息
     *
     * @return 错误消息
     */
    public static ResponseDateUtil errorInfo(String msg) {
        return ResponseDateUtil.builder()
                .msg(msg)
                .build();
    }
 

 
    /**
     * 根据枚举返回错误消息
     *
     * @param resultEnum 状态码 返回内容
     * @return 错误消息
     */
    public static ResponseDateUtil errorInfo(ResultEnum resultEnum) {
        return ResponseDateUtil.builder()
                .code(resultEnum.getCode())
                .msg(resultEnum.getMessage())
                .build();
    }
 
    /**
     * 自定义错误返回错误消息
     *
     * @param resultEnum 状态码 返回内容
     * @param data       返回的数据
     * @return 错误消息
     */
    public static <T> ResponseDateUtil<T> errorInfo(ResultEnum resultEnum, T data) {
        return ResponseDateUtil.<T>builder()
                .code(resultEnum.getCode())
                .msg(resultEnum.getMessage())
                .data(data)
                .build();
    }
 
}